.\" Copyright, Guillem Jover <guillem@hadrons.org>
.\" Copyright 2006, 2008, 2012, 2013, 2015, Michael Kerrisk <mtk.manpages@gmail.com>
.\" Copyright 2024, Alejandro Colomar <alx@kernel.org>
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.TH PR_SET_UNALIGN 2const 2024-06-02 "Linux man-pages 6.9.1"
.SH NAME
PR_SET_UNALIGN
\-
set unaligned access control bits
.SH LIBRARY
Standard C library
.RI ( libc ", " \-lc )
.SH SYNOPSIS
.nf
.BR "#include <linux/prctl.h>" "  /* Definition of " PR_* " constants */"
.B #include <sys/prctl.h>
.P
.BI "int prctl(PR_SET_UNALIGN, unsigned long " flag );
.fi
.SH DESCRIPTION
Set unaligned access control bits to \fIarg2\fP.
.P
Pass
.B PR_UNALIGN_NOPRINT
to silently fix up unaligned user accesses,
or
.B PR_UNALIGN_SIGBUS
to generate
.B SIGBUS
on unaligned user access.
.P
Alpha also supports an additional flag with the value
of 4 and no corresponding named constant,
which instructs kernel to not fix up
unaligned accesses (it is analogous to providing the
.B UAC_NOFIX
flag in
.B SSI_NVPAIRS
operation of the
.BR setsysinfo ()
system call on Tru64).
.SH RETURN VALUE
On success,
0 is returned.
On error, \-1 is returned, and
.I errno
is set to indicate the error.
.SH ERRORS
.TP
.B EINVAL
.I flag
is not a valid value.
.SH STANDARDS
Linux.
.SH HISTORY
Only on:
.IP \[bu] 3
ia64, since Linux 2.3.48
.PD 0
.IP \[bu]
parisc, since Linux 2.6.15
.IP \[bu]
PowerPC, since Linux 2.6.18
.IP \[bu]
Alpha, since Linux 2.6.22
.IP \[bu]
.\" sh: 94ea5e449ae834af058ef005d16a8ad44fcf13d6
sh, since Linux 2.6.34
.IP \[bu]
.\" tile: 2f9ac29eec71a696cb0dcc5fb82c0f8d4dac28c9
tile, since Linux 3.12
.PD
.SH SEE ALSO
.BR prctl (2),
.BR PR_GET_UNALIGN (2const)
